package com.example.design.deprecated.state;

import org.springframework.stereotype.Component;

import javax.annotation.Resource;

@Component
public class DeprecatedOrderContext {

    //删除CurrentState 属性，引入四个具体状态类
    @Resource
    private DeprecatedCreateOrder createOrder;

    @Resource
    private DeprecatedPayOrder payOrder;

    @Resource
    private DeprecatedReceiveOrder receiveOrder;

    @Resource
    private DeprecatedSendOrder sendOrder;

    //新创建的订单初始状态




    //创建订单方法的入口，直接调用状态类的 createOrder方法
    public DeprecatedOrder createOrder(String orderId,String productId){
        return createOrder.createOrder(orderId,productId,this);
    }

    //支付订单的方法入口，直接调用状态类的 payOrder方法
    public DeprecatedOrder payOrder(String orderId){

        return payOrder.payOrder(orderId,this);
    }

    // 收货订单的方法入口，直接调用状态类的 receiveOrder方法
    public DeprecatedOrder receiveOrder(String orderId){

        return receiveOrder.receiveOrder(orderId,this);
    }

    // 发货订单的方法入口，直接调用状态类的 sendOrder方法
    public DeprecatedOrder sendOrder(String orderId){
        return sendOrder.sendOrder(orderId,this);
    }
}
